/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.qy.entity;

import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.Length;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

import com.thinkgem.jeesite.common.persistence.DataEntity;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.constraints.Pattern;

/**
 * 用户Entity
 * @author JohnShen
 * @version 2016-11-24
 */
public class QyUser extends DataEntity<QyUser> {
	
	private static final long serialVersionUID = 1L;
	private String name;		// 姓名
	private String type;		// 用户类型('1'为观众，'2'为主播)

	@NotBlank(message="昵称不能为空或者空串")
	private String nickName;		// 昵称

	private String userAvatar;		// 用户头像URL
	private String loginName;		// 登录名

	@Pattern(regexp="(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{5,15}",message="密码必须是5~10位数字和字母的组合")
	private String password;		// 密码

	@Pattern(regexp = "^[1]([3][0-9]{1}|59|58|88|89)[0-9]{8}$" ,message = "手机号码不符合要求")
	private String mobile;		// 手机号码

	@Email(message="邮箱格式不正确")
	private String email;		// 邮件

	@Pattern(regexp = "1|2",message = "性别只能为1或2")
	private String sex;		// 性别('1'为男，'2'为女)

	private String status;		// 状态(1为正常，2为封号)
	private Date birthday;		// 生日
	private String loginIp;		// 登录ip
	private Date loginDate;		// 登录时间
	
	public QyUser() {
		super();
	}

	public QyUser(String id){
		super(id);
	}

	@Length(min=1, max=32, message="姓名长度必须介于 1 和 32 之间")
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	@Length(min=1, max=2, message="用户类型('1'为观众，'2'为主播)长度必须介于 1 和 2 之间")
	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}
	
	@Length(min=0, max=32, message="昵称长度必须介于 0 和 32 之间")
	public String getNickName() {
		return nickName;
	}

	public void setNickName(String nickName) {
		this.nickName = nickName;
	}
	
	@Length(min=0, max=255, message="用户头像URL长度必须介于 0 和 255 之间")
	public String getUserAvatar() {
		return userAvatar;
	}

	public void setUserAvatar(String userAvatar) {
		this.userAvatar = userAvatar;
	}
	
	@Length(min=1, max=32, message="登录名长度必须介于 1 和 32 之间")
	public String getLoginName() {
		return loginName;
	}

	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}
	
	@Length(min=1, max=100, message="密码长度必须介于 1 和 100 之间")
	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
	
	@Length(min=0, max=32, message="手机号码长度必须介于 0 和 32 之间")
	public String getMobile() {
		return mobile;
	}

	public void setMobile(String mobile) {
		this.mobile = mobile;
	}
	
	@Length(min=0, max=100, message="邮件长度必须介于 0 和 100 之间")
	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}
	
	@Length(min=1, max=2, message="性别('1'为男，'2'为女)长度必须介于 1 和 2 之间")
	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}
	
	@Length(min=1, max=2, message="状态(1为正常，2为封号)长度必须介于 1 和 2 之间")
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getBirthday() {
		return birthday;
	}

	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	
	@Length(min=0, max=32, message="登录ip长度必须介于 0 和 32 之间")
	public String getLoginIp() {
		return loginIp;
	}

	public void setLoginIp(String loginIp) {
		this.loginIp = loginIp;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getLoginDate() {
		return loginDate;
	}

	public void setLoginDate(Date loginDate) {
		this.loginDate = loginDate;
	}
	
}